import axios from 'axios'
import store from '@/store';
import router from '@/router';
const instance = axios.create({
    baseURL: 'https://apipc-xiaotuxian-front.itheima.net',
    timeout: 5000
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么 
    let token = ''
    if (store.state.user && store.state.user.userinfo.token) {
        token = 'Bearer ' + store.state.user.userinfo.token
    }
    config.headers.Authorization = token
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (res) {

    // 对响应数据做点什么
    return res.data;
}, function (err) {
    //处理token过期
    if (err.response.status == 401) {
        //删除vuex中的数据 然后跳转到登录页面  同时传递从哪个页面去的登录页面
        store.commit('user/setUser', {})
        //跳转 同时传递当前路由的fullpath 保证登录成功后再跳回刚才的页面
        let fullpath = encodeURIComponent(router.currentRoute.fullPath)
        router.push('/login?redirectUrl=' + fullpath)
    }
    //页面走丢了
    if (err.response.status == 404) {
        router.push('/404')
    }
    // 对响应错误做点什么
    return Promise.reject(err);
});
// https://blog.csdn.net/u010999809/article/details/84103320
// console.log(router.currentRoute);
export default instance